package com.googlecode.tda367.denty.core.level;

import java.util.List;

import org.jbox2d.common.Vec2;
import org.jbox2d.dynamics.World;

import com.googlecode.tda367.denty.core.camera.Camera;
import com.googlecode.tda367.denty.core.dynamicbody.DynamicBody;
import com.googlecode.tda367.denty.core.dynamicbody.MoveableBody;

public interface Level {
	public void placeBlock(int x, int y);
	public String getTiledMapPath();
	public Camera getCamera();
	public boolean isAreaFree(float x1, float y1, float x2, float y2);
	public boolean canReleaseBody(float x1, float y1, float x2, float y2);
	public void releaseBodies(float x1, float y1, float x2, float y2);
	public int getHeight();
	public int getWidth();
	public int getDentyStartX();
	public int getDentyStartY();
	public int getGoalX();
	public int getGoalY();
	public int getMaxAvailableBlocks();
	public int getBlocksAvailableFromStart();
	public MoveableBody getDenty();
	public List<DynamicBody> getDynamicBodies();
	public void update();
	public void throwNewBlock(float x, float y, Vec2 force);
	public boolean canAddBlock();
	public void restart();
	public World getWorld();
}
